package com.yida.gwj.scene.expend.domain;

import java.math.BigDecimal;
import java.util.Date;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.common.core.annotation.Excel;
import com.yida.common.core.web.domain.BaseEntity;

/**
 * 现场支出业务详情对象 gwj_scene_expend_business_detail
 * 
 * @author hmh
 * @date 2023-08-14
 */
public class GwjSceneExpendBusinessDetail extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 详情ID */
    private Long detailId;

    /** 业务ID */
    @Excel(name = "业务ID")
    private Long bizId;

    /** 维修项目 */
    @Excel(name = "维修项目")
    private String maintenanceProject;

    /** 维修原因 */
    @Excel(name = "维修原因")
    private String maintenanceReason;

    /** 项目维修金额 */
    @Excel(name = "项目维修金额")
    private BigDecimal maintenanceProjectAmount;

    /** 项目申请时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目申请时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date maintenanceProjectApplicationTime;

    /** 维修项目申请单位 */
    @Excel(name = "维修项目申请单位")
    private String maintenanceProjectApplicationUnitName;

    /** 维修项目施工单位 */
    @Excel(name = "维修项目施工单位")
    private String maintenanceProjectConstructionUnitName;

    /** 实际分摊金额 */
    @Excel(name = "实际分摊金额")
    private BigDecimal actualAllocationAmount;

    /** 发票编号 */
    @Excel(name = "发票编号")
    private String invoiceNum;

    /** 首次拨款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "首次拨款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date firstAppropriationTime;

    /** 二次拨款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "二次拨款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date secondAppropriationTime;

    public void setDetailId(Long detailId) {
        this.detailId = detailId;
    }

    public Long getDetailId() {
        return detailId;
    }

    public void setBizId(Long bizId) {
        this.bizId = bizId;
    }

    public Long getBizId() {
        return bizId;
    }

    public void setMaintenanceProject(String maintenanceProject) {
        this.maintenanceProject = maintenanceProject;
    }

    public String getMaintenanceProject() {
        return maintenanceProject;
    }

    public void setMaintenanceReason(String maintenanceReason) {
        this.maintenanceReason = maintenanceReason;
    }

    public String getMaintenanceReason() {
        return maintenanceReason;
    }

    public void setMaintenanceProjectAmount(BigDecimal maintenanceProjectAmount) {
        this.maintenanceProjectAmount = maintenanceProjectAmount;
    }

    public BigDecimal getMaintenanceProjectAmount() {
        return maintenanceProjectAmount;
    }

    public void setMaintenanceProjectApplicationTime(Date maintenanceProjectApplicationTime) {
        this.maintenanceProjectApplicationTime = maintenanceProjectApplicationTime;
    }

    public Date getMaintenanceProjectApplicationTime() {
        return maintenanceProjectApplicationTime;
    }

    public void setMaintenanceProjectApplicationUnitName(String maintenanceProjectApplicationUnitName) {
        this.maintenanceProjectApplicationUnitName = maintenanceProjectApplicationUnitName;
    }

    public String getMaintenanceProjectApplicationUnitName() {
        return maintenanceProjectApplicationUnitName;
    }

    public void setMaintenanceProjectConstructionUnitName(String maintenanceProjectConstructionUnitName) {
        this.maintenanceProjectConstructionUnitName = maintenanceProjectConstructionUnitName;
    }

    public String getMaintenanceProjectConstructionUnitName() {
        return maintenanceProjectConstructionUnitName;
    }

    public void setActualAllocationAmount(BigDecimal actualAllocationAmount) {
        this.actualAllocationAmount = actualAllocationAmount;
    }

    public BigDecimal getActualAllocationAmount() {
        return actualAllocationAmount;
    }

    public void setInvoiceNum(String invoiceNum) {
        this.invoiceNum = invoiceNum;
    }

    public String getInvoiceNum() {
        return invoiceNum;
    }

    public void setFirstAppropriationTime(Date firstAppropriationTime) {
        this.firstAppropriationTime = firstAppropriationTime;
    }

    public Date getFirstAppropriationTime() {
        return firstAppropriationTime;
    }

    public void setSecondAppropriationTime(Date secondAppropriationTime) {
        this.secondAppropriationTime = secondAppropriationTime;
    }

    public Date getSecondAppropriationTime() {
        return secondAppropriationTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("detailId", getDetailId()).append("bizId", getBizId()).append("maintenanceProject", getMaintenanceProject()).append("maintenanceReason", getMaintenanceReason()).append("maintenanceProjectAmount", getMaintenanceProjectAmount()).append("maintenanceProjectApplicationTime", getMaintenanceProjectApplicationTime()).append("maintenanceProjectApplicationUnitName", getMaintenanceProjectApplicationUnitName())
            .append("maintenanceProjectConstructionUnitName", getMaintenanceProjectConstructionUnitName()).append("actualAllocationAmount", getActualAllocationAmount()).append("invoiceNum", getInvoiceNum()).append("firstAppropriationTime", getFirstAppropriationTime()).append("secondAppropriationTime", getSecondAppropriationTime()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime())
            .append("remark", getRemark()).toString();
    }
}
